/**
 * 
 */
package de.cbf.cam.dsa.tavern.carte.ui.interfaces;

import java.awt.event.ActionListener;
import java.util.Iterator;

import org.eclipse.swt.widgets.Shell;

import de.cbf.cam.dsa.tavern.carte.model.entities.interfaces.IEditableEntity;

/**
 * @author Stefan Alter
 *
 */
public interface ICompositeEditEntities {
	
	public Shell getShell();
	
	public ICompositeEditEntity getCompositeEditEntity();
	
	public IEditableEntity getEntitySelected();
	public void setEntitySelected(IEditableEntity value);
	
	public void setEntities (Iterator<IEditableEntity> values);	
	
	public void setButtonSaveEnabled(boolean value);
	public void setButtonDeleteEnabled(boolean value);

	public boolean registerSelectEntityListener(ActionListener listener);
	public boolean deRegisterSelectEntityListener(ActionListener listener);	

	public boolean registerNewEntityListener(ActionListener listener);
	public boolean deRegisterNewEntityListener(ActionListener listener);
	
	public boolean registerDeleteEntityListener(ActionListener listener);
	public boolean deRegisterDeleteEntityListener(ActionListener listener);
	
	public boolean registerSaveEditListener(ActionListener listener);
	public boolean deRegisterSaveEditListener(ActionListener listener);
	
	public boolean registerCancelEditListener(ActionListener listener);
	public boolean deRegisterCancelEditListener(ActionListener listener);

	public boolean registerDoubleClickEntityListener(ActionListener doubleClickEntity);
	public boolean deRegisterDoubleClickEntityListener(ActionListener doubleClickEntity);
}
